Previous Book Contents Book Index Next

Inside Macintosh: 3D Graphics Programming With QuickDraw 3D /
Chapter 10 - Group Objects


Summary of Group Objects

C Summary

Constants

#define kQ3GroupTypeDisplay            Q3_OBJECT_TYPE('d','s','p','g')
#define kQ3GroupTypeInfo               Q3_OBJECT_TYPE('i','n','f','o')
#define kQ3GroupTypeLight              Q3_OBJECT_TYPE('l','g','h','g')
#define kQ3DisplayGroupTypeIOProxy     Q3_OBJECT_TYPE('i','o','p','x')
#define kQ3DisplayGroupTypeOrdered     Q3_OBJECT_TYPE('o','r','d','g')
typedef enum TQ3DisplayGroupStateMasks {
   kQ3DisplayGroupStateNone                  = 0,
   kQ3DisplayGroupStateMaskIsDrawn           = 1 << 0,
   kQ3DisplayGroupStateMaskIsInline          = 1 << 1,
   kQ3DisplayGroupStateMaskUseBoundingBox    = 1 << 2,
   kQ3DisplayGroupStateMaskUseBoundingSphere = 1 << 3,
   kQ3DisplayGroupStateMaskIsPicked          = 1 << 4,
   kQ3DisplayGroupStateMaskIsWritten         = 1 << 5
} TQ3DisplayGroupStateMasks;

Data Types

typedef struct TQ3GroupPositionPrivate       *TQ3GroupPosition;
typedef unsigned long                        TQ3DisplayGroupState;

Group Objects Routines

Creating Groups

TQ3GroupObject Q3Group_New(void);
TQ3GroupObject Q3LightGroup_New (
void);
TQ3GroupObject Q3DisplayGroup_New (
void);
TQ3GroupObject Q3InfoGroup_New(void);
TQ3GroupObject Q3OrderedDisplayGroup_New (
void);
TQ3GroupObject Q3IOProxyDisplayGroup_New (
void);

Managing Groups

TQ3ObjectType Q3Group_GetType(TQ3GroupObject group);
TQ3Status Q3Group_CountObjects(TQ3GroupObject group, 
unsigned long *nObjects);
TQ3Status Q3Group_CountObjectsOfType (
TQ3GroupObject group, 
TQ3ObjectType isType, 
unsigned long *nObjects);
TQ3GroupPosition Q3Group_AddObject (
TQ3GroupObject group, TQ3Object object);
TQ3GroupPosition Q3Group_AddObjectBefore (
TQ3GroupObject group, 
TQ3GroupPosition position, 
TQ3Object object);
TQ3GroupPosition Q3Group_AddObjectAfter (
TQ3GroupObject group, 
TQ3GroupPosition position, 
TQ3Object object);
TQ3Status Q3Group_GetPositionObject (
TQ3GroupObject group, 
TQ3GroupPosition position, 
TQ3Object *object);
TQ3Status Q3Group_SetPositionObject (
TQ3GroupObject group, 
TQ3GroupPosition position, 
TQ3Object object);
TQ3Object Q3Group_RemovePosition (
TQ3GroupObject group, 
TQ3GroupPosition position);
TQ3Status Q3Group_EmptyObjects(TQ3GroupObject group);
TQ3Status Q3Group_EmptyObjectsOfType (
TQ3GroupObject group, TQ3ObjectType isType);

Managing Display Groups

TQ3ObjectType Q3DisplayGroup_GetType (
TQ3GroupObject group);
TQ3Status Q3DisplayGroup_GetState (
TQ3GroupObject group, 
TQ3DisplayGroupState *state);
TQ3Status Q3DisplayGroup_SetState (
TQ3GroupObject group, 
TQ3DisplayGroupState state);
TQ3Status Q3DisplayGroup_Submit (
TQ3GroupObject group, TQ3ViewObject view);

Getting Group Positions

TQ3Status Q3Group_GetFirstPosition (
TQ3GroupObject group, 
TQ3GroupPosition *position);
TQ3Status Q3Group_GetFirstPositionOfType (
TQ3GroupObject group, 
TQ3ObjectType isType, 
TQ3GroupPosition *position);
TQ3Status Q3Group_GetLastPosition (
TQ3GroupObject group, 
TQ3GroupPosition *position);
TQ3Status Q3Group_GetLastPositionOfType (
TQ3GroupObject group, 
TQ3ObjectType isType, 
TQ3GroupPosition *position);
TQ3Status Q3Group_GetNextPosition (
TQ3GroupObject group, 
TQ3GroupPosition *position);
TQ3Status Q3Group_GetNextPositionOfType (
TQ3GroupObject group, 
TQ3ObjectType isType, 
TQ3GroupPosition *position);
TQ3Status Q3Group_GetPreviousPosition (
TQ3GroupObject group, 
TQ3GroupPosition *position);
TQ3Status Q3Group_GetPreviousPositionOfType (
TQ3GroupObject group, 
TQ3ObjectType isType, 
TQ3GroupPosition *position);

Getting Object Positions

TQ3Status Q3Group_GetFirstObjectPosition (
TQ3GroupObject group, 
TQ3Object object, 
TQ3GroupPosition *position);
TQ3Status Q3Group_GetLastObjectPosition (
TQ3GroupObject group, 
TQ3Object object, 
TQ3GroupPosition *position);
TQ3Status Q3Group_GetNextObjectPosition (
TQ3GroupObject group, 
TQ3Object object, 
TQ3GroupPosition *position);
TQ3Status Q3Group_GetPreviousObjectPosition (
TQ3GroupObject group, 
TQ3Object object, 
TQ3GroupPosition *position);

Errors
kQ3ErrorInvalidPositionForGroupNo such position in the group
kQ3ErrorInvalidObjectForGroupNo such object in the group
kQ3ErrorInvalidObjectForPositionNo such object in the position


Previous Book Contents Book Index Next

© Apple Computer, Inc.
11 JUL 1996